#!/bin/bash

# 安装本地 PostgreSQL 脚本

echo "安装 PostgreSQL..."

# 更新包列表
echo "更新包列表..."
sudo apt update

# 安装 PostgreSQL
echo "安装 PostgreSQL 和相关工具..."
sudo apt install -y postgresql postgresql-contrib

# 启动 PostgreSQL 服务
echo "启动 PostgreSQL 服务..."
sudo systemctl start postgresql
sudo systemctl enable postgresql

# 创建数据库和用户
echo "配置数据库..."
sudo -u postgres psql << EOF
-- 创建数据库
CREATE DATABASE product_showcase;

-- 创建用户
CREATE USER app_user WITH PASSWORD 'postgres123';

-- 授权
GRANT ALL PRIVILEGES ON DATABASE product_showcase TO app_user;

-- 退出
\q
EOF

# 创建扩展和函数
echo "初始化数据库..."
sudo -u postgres psql -d product_showcase << EOF
-- 创建扩展
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";

-- 创建更新时间函数
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS \$\$
BEGIN
    NEW.updated_at = NOW();
    RETURN NEW;
END;
\$\$ language 'plpgsql';
EOF

echo "✅ PostgreSQL 安装和配置完成！"
echo ""
echo "数据库连接信息："
echo "  主机: localhost"
echo "  端口: 5432"
echo "  数据库: product_showcase"
echo "  用户名: app_user"
echo "  密码: postgres123"
echo ""
echo "请更新 .env.local 文件中的 DATABASE_URL："
echo "DATABASE_URL=postgresql://app_user:postgres123@localhost:5432/product_showcase"